The present invention relates to an industrial control system used for real-time control of industrial processes, and in particular, to integrated drive management and configuration using instantiated objects. One aspect of the invention allows a drive or other peripheral component of an industrial process to be configured using the logic development tool customarily used to configure or otherwise program an industrial controller of the industrial process.
Industrial controllers are special purpose computers used for controlling industrial processes and manufacturing equipment on a real-time basis. Under the direction of a stored program, the industrial controller examines a set of inputs reflecting the status of the controlled process and changes a set of outputs controlling the industrial process. The inputs and outputs may be binary, which is on or off, or analog, providing a value within a continuous range. Typically analog signals are converted to binary words for processing. Industrial controllers differ from conventional computers in that their hardware configurations vary significantly from application to application reflecting their wide range of uses. This variability is accommodated by constructing the industrial controller on a modular basis having removable input and output (I/O) modules that may accommodate different numbers of input and output points depending on the process being controlled. The need to connect the I/O modules to different pieces of machinery that may be spatially separated has led to the development of a remote I/O rack holding a number of I/O modules at a remote location to communicate with a central processor of the industrial control via an adapter module, which in turn is connected with a high speed network linked to the central processor. The adapter exchanges information between the network and the I/O modules.
Industrial controllers further differ from conventional computers in that they must process a large amount of input and output data on a predictable real-time basis. This requires not only that the response time of the industrial controller be extremely fast, but also that the processing delay between a changing input and the response of a reacting output be consistent so that the controller operates predictably over time.
To satisfy these requirements of speed and consistency, many industrial controllers use a “scan” based architecture in which each input and output are sequentially read and written over repeated scans of regular duration. Newer industrial controllers may use a producer/consumer model which allows I/O modules to produce data when sampled rather than waiting for a controller scan. This produce/consume protocol may also be used in the communication between an adapter module and the I/O modules of a remote I/O rack. The immediate production of data makes the data available to be used in the system as quickly as possible and reduces overhead on the controller to actively scan all inputs, even when no new data is available. During operation of an industrial process, the industrial controller consumes data produced by the I/O modules, which acquires or samples data from various components of the industrial process, in a timed loop. Those various components include motor drives and other peripheral devices adapted to carry out various functions of the industrial process.
Industrial controllers execute a stored program to control the industrial process. In this regard, industrial controllers are programmable devices and, as such, are also referred to as programmable logic controllers (PLCs). A number of programming tools have been used to program PLCs for industrial applications. One such programming tool is RSLogix 5000, commercially available from Rockwell Automation, Milwaukee, Wis. These programming tools not only enable a programmer to configure the PLC, but may also present generic profiles of various components of the industrial process, such as a motor drive. The generic profiles provide the programmer with information regarding the supported component so that information can be considered during programming of the PLC; however, the programmer is unable to configure the component, e.g., motor drive, directly within the context of the PLC programming tool. In this regard, a separate programming tool, specific for configuring the component, such as DriveTools, commercially available from Rockwell Automation, Milwaukee, Wis., is required to be launched, either directly by the programmer or by the PLC programming tool, to enable the operator to configure the component. The separate programming tools result in a disconnect that can make programming of the PLC and the controlled components, e.g. motor drives, difficult.
More particularly, the PLC communicates with a drive through a communications module. For the drive to be fully operational, the drive as well as the communications module must be configured. In this regard, an elaborate communications framework has been established in which configuration data is not passed between the PLC and the drive unless the communications module allows the communication. Even if the initial communications hurdles are overcome and the communications module passes the configuration data to the motor drive, the PLC is unable to verify that the data was, in fact, properly received by the motor drive. The PLC can only verify that the communications module accepted the communication.
As a result of the independence between the PLC and the communications module, the PLC cannot verify that the configuration data, even if received, has been properly mapped to parameters of the motor drive. This can be particularly problematic since the mapping mechanism used to map the configuration data to the motor drive is typically unique for the motor drive. If the mapping to the parameters of the motor drive is incorrect, the configuration data may not be stored correctly or the communications module may not permit the data transfer altogether. As a result, a separate error checking tool must be used to verify configuration of the drive and the communications module.